package edu.northwestern.cbits.purple_robot_manager.activities.settings;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceActivity;
import android.preference.PreferenceCategory;
import android.preference.PreferenceScreen;
import edu.northwestern.cbits.purple_robot_manager.ManagerService;
import edu.northwestern.cbits.purple_robot_manager.PurpleRobotApplication;
import edu.northwestern.cbits.purple_robot_manager.R;
import edu.northwestern.cbits.purple_robot_manager.http.LocalHttpServer;
import edu.northwestern.cbits.purple_robot_manager.logging.LogManager;
import edu.northwestern.cbits.purple_robot_manager.models.ModelManager;
import edu.northwestern.cbits.purple_robot_manager.probes.ProbeManager;
import edu.northwestern.cbits.purple_robot_manager.triggers.TriggerManager;
public class LegacySettingsActivity extends PreferenceActivity
{
@SuppressWarnings("deprecation")
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
PurpleRobotApplication.fixPreferences(this, true);
this.addPreferencesFromResource(R.xml.settings);
RobotPreferenceListener listener = new RobotPreferenceListener(this);
PreferenceScreen prefs = this.getPreferenceScreen();
Preference refresh = prefs.findPreference(SettingsKeys.MANUAL_REFRESH_KEY);
refresh.setOnPreferenceClickListener(listener);
Preference logRefresh = prefs.findPreference(SettingsKeys.LOG_REFRESH_KEY);
logRefresh.setOnPreferenceClickListener(listener);
final LegacySettingsActivity me = this;
ListPreference haptic = (ListPreference) prefs.findPreference(SettingsKeys.HAPTIC_PATTERN_KEY);
haptic.setOnPreferenceChangeListener(new OnPreferenceChangeListener()
{
@Override
public boolean onPreferenceChange(Preference preference, Object newValue)
{
String pattern = (String) newValue;
Intent intent = new Intent(ManagerService.HAPTIC_PATTERN_INTENT);
intent.putExtra(ManagerService.HAPTIC_PATTERN_NAME, pattern);
intent.setClass(me, ManagerService.class);
me.startService(intent);
return true;
}
});
PreferenceScreen probesScreen = ProbeManager.buildPreferenceScreen(this, this.getPreferenceManager());
PreferenceCategory category = (PreferenceCategory) prefs.findPreference("config_settings_probe_category");
category.addPreference(probesScreen);
PreferenceScreen triggersScreen = TriggerManager.getInstance(this).buildPreferenceScreen(this, this.getPreferenceManager());
PreferenceCategory triggerCategory = (PreferenceCategory) prefs
.findPreference("config_settings_trigger_category");
triggerCategory.addPreference(triggersScreen);
PreferenceScreen modelsScreen = ModelManager.getInstance(this).buildPreferenceScreen(this, this.getPreferenceManager());
PreferenceCategory modelCategory = (PreferenceCategory) prefs.findPreference("config_settings_models_category");
modelCategory.addPreference(modelsScreen);
Preference archive = prefs.findPreference(SettingsKeys.ZIP_ARCHIVES_KEY);
archive.setOnPreferenceClickListener(listener);
Preference delete = prefs.findPreference(SettingsKeys.DELETE_ARCHIVES_KEY);
delete.setOnPreferenceClickListener(listener);
Preference test = prefs.findPreference(SettingsKeys.RUN_TESTS_KEY);
test.setOnPreferenceClickListener(listener);
// CheckBoxPreference update = (CheckBoxPreference) prefs.findPreference(SettingsKeys.CHECK_UPDATES_KEY);
// update.setOnPreferenceChangeListener(listener);
ListPreference listUpdate = (ListPreference) prefs.findPreference(SettingsKeys.RINGTONE_KEY);
listUpdate.setOnPreferenceChangeListener(listener);
Preference reset = prefs.findPreference(SettingsKeys.RESET_KEY);
reset.setOnPreferenceClickListener(listener);
Preference logEnabled = prefs.findPreference(LogManager.ENABLED);
logEnabled.setOnPreferenceChangeListener(listener);
Preference logUri = prefs.findPreference(LogManager.URI);
logUri.setOnPreferenceChangeListener(listener);
Preference logLocation = prefs.findPreference(LogManager.INCLUDE_LOCATION);
logLocation.setOnPreferenceChangeListener(listener);
Preference logWifi = prefs.findPreference(LogManager.WIFI_ONLY);
logWifi.setOnPreferenceChangeListener(listener);
Preference logHeartbeat = prefs.findPreference(LogManager.HEARTBEAT);
logHeartbeat.setOnPreferenceChangeListener(listener);
Preference logInterval = prefs.findPreference(LogManager.UPLOAD_INTERVAL);
logInterval.setOnPreferenceChangeListener(listener);
Preference configUrl = prefs.findPreference(SettingsKeys.CONFIG_URL);
configUrl.setOnPreferenceChangeListener(listener);
Preference enableHttpServer = prefs.findPreference(LocalHttpServer.BUILTIN_HTTP_SERVER_ENABLED);
enableHttpServer.setOnPreferenceChangeListener(listener);
Preference enableZeroconf = prefs.findPreference(LocalHttpServer.BUILTIN_ZEROCONF_ENABLED);
enableZeroconf.setOnPreferenceChangeListener(listener);
Preference enableZeroconfName = prefs.findPreference(LocalHttpServer.BUILTIN_ZEROCONF_NAME);
enableZeroconfName.setOnPreferenceChangeListener(listener);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN)
{
PreferenceScreen screen = (PreferenceScreen) this.findPreference("screen_builtin_http_server");
screen.removePreference(enableZeroconf);
screen.removePreference(enableZeroconfName);
}
Preference exportBootstrap = prefs.findPreference("config_export_bootstrap");
exportBootstrap.setOnPreferenceClickListener(listener);
Preference exportJekyll = prefs.findPreference("config_export_jekyll");
exportJekyll.setOnPreferenceClickListener(listener);
LogManager.getInstance(me).log("pr_settings_visited", null);
}
@Override
protected void onDestroy()
{
super.onDestroy();
LogManager.getInstance(this).log("pr_settings_exited", null);
}
}